//Modèle de commentaires
/* FONCTION : 
 * PARAMETRE () : 
 * ROLE : 
 * RETURN : 
 */

//----- VARIABLES GLOBALES ------//


//----- AJAX ------//
/* FONCTION : getXMLHttpRequest(),
 * PARAMETRE (0),
 * ROLE : Instancie l'objet XMLHttp qui permet l'utilisation des requêtes AJAX, et indique si navigateur compatible
 * RETURN : 
 */
function getXMLHttpRequest()
{
    var xhr = null;
    
    if (window.XMLHttpRequest || window.ActiveXObject) 
    {
        if (window.ActiveXObject) 
        {  
        	try 
            {
                xhr = new ActiveXObject("Msxml2.XMLHTTP");
            } 
            catch(e) 
            {
                xhr = new ActiveXObject("Microsoft.XMLHTTP");
            }
        } 
        else 
        {
            xhr = new XMLHttpRequest();
        }
    } 
    else 
    {
        //---alert("Votre navigateur ne supporte pas l'objet XMLHTTPRequest...");
        return null;
    }
    return xhr;
}

/* FONCTION : requeteAjax(),
 * PARAMETRE (1) : "oHTML", objet HMTL responsable de l'action (permet de trier les appels au script),
 * ROLE : Centralise tous les appels aux fonctions nécessitant de l'AJAX et renvoit le résultat des scripts,
 * RETURN : HTML ou booléen selon la nature du script ("..afficherForm()" renvoit du html alors que "..verif()" renvoit un booléen).
 */
function requeteAjax(oHTML)
{
	var idOHTML=oHTML.id;
	//---alert(idOHTML);
	var resultat;	
	//Instanciation de l'objet XMLHttpRequest'
	var xhr = getXMLHttpRequest();
	//Chaine des valeurs à envoyer en AJAX
	var chaineAjax="";
	
	if(idOHTML=="aConnexion" || idOHTML=="aInscription")
	//Si action sur bouton connectez-vous ou inscrivez-vous
	{
		var parametre="nomBouton";
		var valeurParametre=idOHTML;
		chaineAjax=ajouterParametreAjax(chaineAjax,parametre,valeurParametre);
		xhr.open("POST", "script/scriptAfficherForm.php", false);
	}	
	if(idOHTML=="inputMail")
	//Si action depuis le champ de saisie de l'addresse mail
	{
		var parametre="mail";
		var valeurParametre=oHTML.value;
		chaineAjax=ajouterParametreAjax(chaineAjax,parametre,valeurParametre);
		xhr.open("POST","script/scriptVerifMail.php",false);
	}
	if(idOHTML=="inputValiderInscription")
	//Si action sur le bouton qui valide une première le formulaire (Valider)
	{
		parametre="numLicencie[]";
		valeurParametre=document.getElementsByName("inputNumLicencie[]");
		for (var i=0; i < valeurParametre.length; i++) {
			chaineAjax=ajouterParametreAjax(chaineAjax,parametre,valeurParametre[i].value);
		};
		statutLicencie=document.getElementById("inputLicencie").checked;
		parametre="statutLicencie";
		if(statutLicencie)
			valeurParametre="true";
		else
			valeurParametre="false";
		chaineAjax=ajouterParametreAjax(chaineAjax,parametre,valeurParametre);
		xhr.open("POST","script/scriptVerifNumLicencie.php", false);
	}
	if(idOHTML=="inputTerminerInscription")
	//On submit du formulaire d'inscription (test de validation final)
	{
		//---alert("Ajax");
		//Mail
		var parametre="mail";
		valeurParametre=document.getElementById("inputMail").value;
		chaineAjax=ajouterParametreAjax(chaineAjax,parametre,valeurParametre);
		//Password
		parametre="password";
		valeurParametre=document.getElementById("inputPassword").value;
		chaineAjax=ajouterParametreAjax(chaineAjax,parametre,valeurParametre);
		//Statut
		parametre="statutLicencie";
		valeurParametre=document.getElementById("inputLicencie").checked;
		chaineAjax=ajouterParametreAjax(chaineAjax,parametre,valeurParametre);
		//Nom
		parametre="nom";
		valeurParametre=document.getElementById("inputNom").value;
		chaineAjax=ajouterParametreAjax(chaineAjax,parametre,valeurParametre);
		//Prénom
		parametre="prenom";
		valeurParametre=document.getElementById("inputPrenom").value;
		chaineAjax=ajouterParametreAjax(chaineAjax,parametre,valeurParametre);
		//Ville
		parametre="ville";
		valeurParametre=document.getElementById("inputVille").value;
		chaineAjax=ajouterParametreAjax(chaineAjax,parametre,valeurParametre);
		//Code postal
		parametre="codePostal";
		valeurParametre=document.getElementById("inputCodePostal").value;
		chaineAjax=ajouterParametreAjax(chaineAjax,parametre,valeurParametre);
		//Rue
		parametre="rue";
		valeurParametre=document.getElementById("inputRue").value;
		chaineAjax=ajouterParametreAjax(chaineAjax,parametre,valeurParametre);
		//Numéro de licencié seul
		parametre="numLicencie[]";
		if(document.getElementById("inputLicencie").checked)
		{
			//---alert("licencié");
			valeurParametre=document.getElementById("divInformationsLicencie").getElementsByTagName("input");
			//---alert(valeurParametre);
			for (var i=0; i<(valeurParametre.length-1); i++) {
				chaineAjax=ajouterParametreAjax(chaineAjax,parametre,valeurParametre[i].value);
				//---alert(chaineAjax);
			}
		}
		//Numéros de licenciés multiples
		else
		{
			div=document.getElementById("divListeLicencie").firstChild;   //<div id="divListeLicencie"><div></div></div>
			for (var i=0; i < div.childNodes.length; i++) {				  //<div><div id="divChampsListeLicencie"></div></div>
			  for(var j=1; j< (div.childNodes[i].childNodes.length-1); j++) { //<div id="divChampsListeLicencie0"><input...></div>
			  	valeurParametre=div.childNodes[i].childNodes[j].value;
			  	chaineAjax=ajouterParametreAjax(chaineAjax,parametre,valeurParametre);
			  }
			};
		}	
		xhr.open("POST", "script/scriptInscription.php", false);
	}
	xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
	xhr.send(chaineAjax);
	if (xhr.readyState == 4 && (xhr.status == 200 || xhr.status == 0)) 
	//Si la requête est terminée
		resultat=xhr.responseText;
	else
		resultat="Erreur requete Ajax";
	return resultat;
}

/* FONCTION : ajouterParametreAjax(),
 * PARAMETRE (3) : 
 * - "chaine", chaine de caractères contenant les paramètres à envoyer aux scripts,
 * - "Parametre", nom du parametre,
 * - "valeur", valeur du parametre,
 * ROLE : Permet de concaténer les paramètres à envoyer aux scripts selon la norme AJAX,
 * RETURN : Retourne une chaine de la forme : "Parametre1=valeur1&Parametre2=valeur2&"......
 */
function ajouterParametreAjax(chaine,Parametre,valeur)
{
	var chaine=chaine;
	var valeur=valeur;	
	chaine+=Parametre+"="+valeur+"&";
	
	return chaine;
}


//----- FONCTIONS GENERALES -----//
/*  FONCTION : afficherFormConnexion(),
 *	PARAMETRE (1) : objet "oHTML", contient l'élement HTML qui a appelé la fonction, ici un lien déguisé en bouton
 *  ROLE : Affiche le formulaire de connexion sur la page index.php,
 *  RETURN : Ø
 */
function afficherFormConnexion(oHTML)
{
	var div=document.getElementById("divChoix");
	div.innerHTML="";
	div.innerHTML=requeteAjax(oHTML);
}

/* FONCTION : afficherFormInscription(),
 * PARAMETRE (1) : "oHTML", objet responsable de l'appel de la fonction , ici un lien déguisé en bouton
 * ROLE : Affiche le formulaire d'inscription,
 * RETURN : Ø
 */
function afficherFormInscription(oHTML)
{
	var div=document.getElementById("divChoix");
	div.innerHTML="";
	div.innerHTML=requeteAjax(oHTML);
}

/* FONCTION : annulerSaisieNumLicencie()
 * PARAMETRE () : "ligne", noeud html représentant une ligne (div)
 * ROLE : Annule la saisie d'une ligne (les champs deviennent vides)
 * RETURN : Ø
 */
function annulerSaisieNumLicencie(ligne)
{
	tabInput=ligne.getElementsByTagName("input");
	for (var i=1; i < tabInput.length; i++) {
	//On réinitialise les valeurs des champs. Début à 1 pour ne pas prendre en compte le bouton
	  tabInput[i].value="";
	};
	img=ligne.getElementsByTagName("img")[0];
	img.parentNode.removeChild(img);
}

/* FONCTION : ajouterLigneLicencie(),
 * PARAMETRE (1) : "numLigne", numéro de la dernière ligne créée,
 * ROLE : ajoute une ligne supplémentaire au cadre de saisie des numéros de licences dans le formulaire d'inscription (si représentant),
 * RETURN : Ø
 */
function ajouterLigneLicencie(numLigne)
{
	inputOld=document.getElementById("inputTerminerInscription");
	if(inputOld)
	{
		input=document.createElement("input");
		input.setAttribute("id","inputValiderInscription");
		input.setAttribute("name","inputValiderInscription");
		input.setAttribute("type","button");
		input.setAttribute("value","Valider");
		input.setAttribute("onclick","verifExistenceNumLicencie(this);");
		inputOld.parentNode.removeChild(inputOld);
		document.getElementById("divInformationsLicencie").appendChild(input);
	}
	var nb=numLigne;
	nb++;
	
	div=document.getElementById("divListeLicencie").firstChild;
	
	divChamps=document.createElement("div");
	divChamps.setAttribute("id","divChampsListeLicencie"+nb);
	document.getElementById("divBouton").firstChild.setAttribute("onclick","ajouterLigneLicencie("+nb+");");
	
	//Bouton d'annulation de saisie d'une ligne
	input=document.createElement("input");
	input.setAttribute("id","inputAnnulerSaisieNumLicencie");
	input.setAttribute("name","inputAnnulerSaisieNumLicencie");
	input.setAttribute("type","button");
	input.setAttribute("value","c");
	input.setAttribute("onclick","annulerSaisieNumLicencie(this.parentNode);");
	divChamps.appendChild(input);
	
	//Création des 5 cases pour créer un numéro de Licencie
	input=document.createElement("input");
	input.setAttribute("name","inputNumLicencie[]");
	input.setAttribute("type","text");
	input.setAttribute("size","2");
	input.setAttribute("maxlength","2");
	input.setAttribute("onkeyup","return verifSaisieNumLicencie(this);");
	input.setAttribute("onkeydown","if (event.keyCode==32) return false;");
	divChamps.appendChild(input);	
	input.focus();
	for (var i=0; i < 2; i++) {
	  	input=document.createElement("input");
		input.setAttribute("name","inputNumLicencie[]");
		input.setAttribute("type","text");
		input.setAttribute("size","2");
		input.setAttribute("maxlength","2");
		input.setAttribute("onkeyup","return verifSaisieNumLicencie(this);");
		input.setAttribute("onkeydown","if (event.keyCode==32) return false;");
		divChamps.appendChild(input);	
	};
	for (var i=0; i < 2; i++) {
	  	input=document.createElement("input");
		input.setAttribute("name","inputNumLicencie[]");
		input.setAttribute("type","text");
		input.setAttribute("size","3");
		input.setAttribute("maxlength","3");
		input.setAttribute("onkeyup","return verifSaisieNumLicencie(this);");
		input.setAttribute("onkeydown","if (event.keyCode==32) return false;");
		divChamps.appendChild(input);	
	};	

	div.appendChild(divChamps);	
}

/* FONCTION : gererChangementStatut(),
 * PARAMETRE (1) : "oHTML", objet responsable de l'appel de la fonction , ici un bouton radio
 * ROLE : Gère le choix de statut dans le formulaire d'inscription (licencié ou représentant),
 * RETURN : Ø
 */
function gererChangementStatut(oHTML)
{
	//Suppression des champs en place
	div=document.getElementById("divInformationsComplementaires");
	div.innerHTML="";
	div=document.getElementById("divInformationsLicencie");
	div.innerHTML="";
	divInfo=document.getElementById("divInformationsEssentiellesRepresentant");
	divInfo.innerHTML="";
	span=document.getElementById("messageErreurNumLicencie");
	span.innerHTML="";
	span.setAttribute("class","");
	if(oHTML.id=="inputLicencie")
	//Si le demandeur est licencié
	{
		label=document.createElement("label");
		label.setAttribute("for","inputNumLicencie");
		label.innerHTML="Num&eacute;ro de Licencie: ";
		div.appendChild(label);
		
		input=document.createElement("input");
		input.setAttribute("name","inputNumLicencie[]");
		input.setAttribute("type","text");
		input.setAttribute("size","2");
		input.setAttribute("maxlength","2");
		input.setAttribute("onkeyup","return verifSaisieNumLicencie(this);");
		input.setAttribute("onkeydown","if (event.keyCode==32) return false;");
		div.appendChild(input);
		input.focus();
		for (var i=0; i < 2; i++) {
		  	input=document.createElement("input");
			input.setAttribute("name","inputNumLicencie[]");
			input.setAttribute("type","text");
			input.setAttribute("size","2");
			input.setAttribute("maxlength","2");
			input.setAttribute("onkeyup","return verifSaisieNumLicencie(this);");
			input.setAttribute("onkeydown","if (event.keyCode==32) return false;");
			div.appendChild(input);
		};
		for (var i=0; i < 2; i++) {
		  	input=document.createElement("input");
			input.setAttribute("name","inputNumLicencie[]");
			input.setAttribute("type","text");
			input.setAttribute("size","3");
			input.setAttribute("maxlength","3");
			input.setAttribute("onkeyup","return verifSaisieNumLicencie(this);");
			input.setAttribute("onkeydown","if (event.keyCode==32) return false;");
			div.appendChild(input);
		};
		input=document.createElement("input");
		input.setAttribute("id","inputValiderInscription");
		input.setAttribute("name","inputValiderInscription");
		input.setAttribute("type","button");
		input.setAttribute("value","Valider");
		input.setAttribute("onclick","verifExistenceNumLicencie(this);");
		div.appendChild(input);		
		
		input=document.getElementById("inputTerminerInscription");
		if(input)
			input.parentNode.removeChild(input);
	}
	else
	//Sinon, le demandeur est représentant de licencié
	//Input.id == inputRepresentant
	{
		//On rajoute les informations essentielles au représentant (nom, prénom etc)
		divInfo=document.getElementById("divInformationsEssentiellesRepresentant");
		//Nom
		//Label
		div=document.createElement("div");
		label=document.createElement("label");
		label.setAttribute("for","inputNom");
		span=document.createElement("span");
		span.setAttribute("class","messageIndication");
		span.innerHTML="(*)";
		label.appendChild(span);
		label.innerHTML+="Nom : ";
		div.appendChild(label);
		//Input
		input=document.createElement("input");
		input.setAttribute("type","text");
		input.setAttribute("id","inputNom");
		input.setAttribute("name","inputNom");
		input.setAttribute("onchange","verifIdentite(this)");
		div.appendChild(input);
		divInfo.appendChild(div);
		
		//Prénom
		//Label
		div=document.createElement("div");
		label=document.createElement("label");
		label.setAttribute("for","inputPrenom");
		span=document.createElement("span");
		span.setAttribute("class","messageIndication");
		span.innerHTML="(*)";
		label.appendChild(span);
		label.innerHTML+="Prénom : ";
		div.appendChild(label);
		//Input
		input=document.createElement("input");
		input.setAttribute("type","text");
		input.setAttribute("id","inputPrenom");
		input.setAttribute("name","inputPrenom");
		input.setAttribute("onchange","verifIdentite(this)");
		div.appendChild(input);
		divInfo.appendChild(div);
		
		//Message d'erreur sur l'identité (nom+prénom)
		span=document.createElement("span");
		span.setAttribute("id","messageErreurIdentite");
		divInfo.appendChild(span);
		
		//Ville
		//Label
		div=document.createElement("div");
		label=document.createElement("label");
		label.setAttribute("for","inputVille");
		span=document.createElement("span");
		span.setAttribute("class","messageIndication");
		span.innerHTML="";
		label.appendChild(span);
		label.innerHTML+="Ville : ";
		div.appendChild(label);
		//Input
		input=document.createElement("input");
		input.setAttribute("type","text");
		input.setAttribute("id","inputVille");
		input.setAttribute("name","inputVille");
		div.appendChild(input);
		divInfo.appendChild(div);
		
		//Codepostal
		//Label
		div=document.createElement("div");
		label=document.createElement("label");
		label.setAttribute("for","inputCodePostal");
		span=document.createElement("span");
		span.setAttribute("class","messageIndication");
		span.innerHTML="";
		label.appendChild(span);
		label.innerHTML+="Code postal : ";
		div.appendChild(label);
		//Input
		input=document.createElement("input");
		input.setAttribute("type","text");
		input.setAttribute("id","inputCodePostal");
		input.setAttribute("size","5");
		input.setAttribute("name","inputCodePostal");
		input.setAttribute("onchange","verifCodePostal(this)");
		div.appendChild(input);
		divInfo.appendChild(div);
		
		//Message d'erreur sur le code postal
		span=document.createElement("span");
		span.setAttribute("id","messageErreurCodePostal");
		divInfo.appendChild(span);
		
		//Rue
		//Label
		div=document.createElement("div");
		label=document.createElement("label");
		label.setAttribute("for","inputRue");
		span=document.createElement("span");
		span.setAttribute("class","messageIndication");
		span.innerHTML="";
		label.appendChild(span);
		label.innerHTML+="Rue : ";
		div.appendChild(label);
		//Input
		input=document.createElement("input");
		input.setAttribute("type","text");
		input.setAttribute("id","inputRue");
		input.setAttribute("name","inputRue");
		div.appendChild(input);
		divInfo.appendChild(div);
			
		//Puis on affiche le cadre de saisie des numéros de licences
		div=document.getElementById("divInformationsLicencie");
		//Message d'indication
		divMessage=document.createElement("div");
		divMessage.innerHTML="Num&eacute;ros des licenci&eacute;s que vous repr&eacute;sentez: ";
		div.appendChild(divMessage);

		//Liste permettant d'ajouter plusieurs licenciés
		divListe=document.createElement("div");	
		divListe.setAttribute("id","divListeLicencie");
		divListeInt=document.createElement("div");	
		divChamps=document.createElement("div");
		divChamps.setAttribute("id","divChampsListeLicencie0");
		
		//Bouton d'annulation de saisie d'une ligne
		input=document.createElement("input");
		input.setAttribute("id","inputAnnulerSaisieNumLicencie");
		input.setAttribute("name","inputAnnulerSaisieNumLicencie");
		input.setAttribute("type","button");
		input.setAttribute("value","c");
		input.setAttribute("onclick","annulerSaisieNumLicencie(this.parentNode);");
		divChamps.appendChild(input);
		
		//Création des 5 cases pour créer un numéro de Licencie
		input=document.createElement("input");
		input.setAttribute("name","inputNumLicencie[]");
		input.setAttribute("type","text");
		input.setAttribute("size","2");
		input.setAttribute("maxlength","2");
		input.setAttribute("onkeyup","return verifSaisieNumLicencie(this);");
		input.setAttribute("onkeydown","if (event.keyCode==32) return false;");
		divChamps.appendChild(input);	
		input.focus();
		for (var i=0; i < 2; i++) {
		  	input=document.createElement("input");
			input.setAttribute("name","inputNumLicencie[]");
			input.setAttribute("type","text");
			input.setAttribute("size","2");
			input.setAttribute("maxlength","2");
			input.setAttribute("onkeyup","return verifSaisieNumLicencie(this);");
			input.setAttribute("onkeydown","if (event.keyCode==32) return false;");
			divChamps.appendChild(input);	
		};
		for (var i=0; i < 2; i++) {
		  	input=document.createElement("input");
			input.setAttribute("name","inputNumLicencie[]");
			input.setAttribute("type","text");
			input.setAttribute("size","3");
			input.setAttribute("maxlength","3");
			input.setAttribute("onkeyup","return verifSaisieNumLicencie(this);");
			input.setAttribute("onkeydown","if (event.keyCode==32) return false;");
			divChamps.appendChild(input);	
		};	
		
		divListeInt.appendChild(divChamps);
		divListe.appendChild(divListeInt);
		div.appendChild(divListe);
			
		//Bouton d'ajout de lignes
		divBouton=document.createElement("div");
		divBouton.setAttribute("id","divBouton");
		input=document.createElement("input");
		input.setAttribute("id","boutonPlus");
		input.setAttribute("name","boutonPlus");
		input.setAttribute("onclick","ajouterLigneLicencie(0);");
		input.setAttribute("type","button");
		input.setAttribute("value","Ajouter une ligne");	
		divBouton.appendChild(input),
		div.appendChild(divBouton);
		
		input=document.createElement("input");
		input.setAttribute("id","inputValiderInscription");
		input.setAttribute("name","inputValiderInscription");
		input.setAttribute("type","button");
		input.setAttribute("value","Valider");
		input.setAttribute("onclick","verifExistenceNumLicencie(this);");
		div.appendChild(input);	
		
		
		input=document.getElementById("inputTerminerInscription");
		if(input)
			input.parentNode.removeChild(input);
	}
}

/* FONCTION : modifierNumLicencie()
 * PARAMETRE (1) : "oHTML", objet html responsable de l'appel de la fonction, ici un champ bouton 
 * ROLE : Permet de modifier le numéro de licencié 
 * RETURN : Ø
 */
function modifierNumLicencie(oHTML)
{
	//On redonne l'accès aux champs et on remet le bouton valider
	div=document.getElementById("divInformationsLicencie");
	for (var i=0; i < div.childNodes.length; i++) {
	  div.childNodes[i].readOnly=false;
	};
	input=document.createElement("input");
	input.setAttribute("id","inputValiderInscription");
	input.setAttribute("name","inputValiderInscription");
	input.setAttribute("type","button");
	input.setAttribute("value","Valider");
	input.setAttribute("onclick","verifExistenceNumLicencie(this);");
	inputOld=document.getElementById("inputModifierNumLicencie");
	div.replaceChild(input,inputOld);
	
	//On efface les informations complémentaires
	div=document.getElementById("divInformationsComplementaires");
	div.innerHTML="";
	
	//On supprime le bouton de fin d'inscription
	input=document.getElementById("inputTerminerInscription");
	input.parentNode.removeChild(input);
}

/* FONCTION : supprimerLigneNumLicencie(ligne)
 * PARAMETRE () : "ligne", noeud html représentant une ligne (div)
 * ROLE : Supprime une ligne
 * RETURN :  Ø
 */
function supprimerLigneNumLicencie(ligneASuppr)
{
	div=ligneASuppr.parentNode;
	valeurLigneASuppr=ligneASuppr.id.substr((ligneASuppr.id.length-1),1);
	//Pour chaque ligne après la ligne a supprimer(Cette boucle gère le décalage des indices de lignes lorsqu'une d'elle est supprimée)
	for (var i=valeurLigneASuppr; i < div.childNodes.length; i++) {
		ligne=div.childNodes[i];
		//On récupère sa valeur (valeur du dernier caractère de l'id)
		valeurLigne=ligne.id.substr((ligne.id.length-1),1);
		//---alert("valeur Ligne :"+valeurLigne);
		//On enlève 1 à cette valeur
		valeurLigne=valeurLigne-1;
		//---alert("nouvelle valeur ligne:"+valeurLigne);
		//Puis on lui réassigne
		ligne.id=ligne.id.substr(0,(ligne.id.length-1));
		ligne.id+=valeurLigne;
		//---alert(ligne.id);
	};
	//Enfin, on supprime la ligne de départ
	div.removeChild(ligneASuppr);
	//---alert(div.childNodes.length);
	//  (Si il n'y a aucune ligne OU qu'il n'ya pas de ligne valide (donc pas de bouton supprimer ligne)) ET que le bouton terminer inscription existe
	if((div.childNodes.length==0 || !document.getElementById("inputSupprimerLigneNumLicencie")) && document.getElementById("inputTerminerInscription"))
	{
		form=document.getElementById("formInscription");
		inputOld=document.getElementById("inputTerminerInscription");
		input=document.createElement("input");
		input.setAttribute("id","inputValiderInscription");
		input.setAttribute("name","inputValiderInscription");
		input.setAttribute("type","button");
		input.setAttribute("value","Valider");
		input.setAttribute("onclick","verifExistenceNumLicencie(this);");
		form.replaceChild(input,inputOld);
	}
	document.getElementById("boutonPlus").setAttribute("onclick","ajouterLigneLicencie("+valeurLigne+")");
}

/* FONCTION : verifSaisieNumLicencie(),
 * PARAMETRE (1) : "oHTML", objet html responsable de l'appel de la fonction, ici un champ de texte
 * ROLE : Empêche l'utilisation de tout caractères non numériques (contrôle sur les touches du clavier),
 * RETURN : Renvoit TRUE si touche autorisée, FALSE sinon
 */
function verifSaisieNumLicencie(oHTML)
{
	/* tentative avec les keycode, problème avec le capslock
	key=event.keyCode;
	alt=event.altKey;
	//True si alt activé
	ctrl=event.ctrlKey;
	//True si ctrl activé
	shift=event.shiftKey;
	resultat=false;
	if(key==20)
	
	if((key > 47 && key < 58 && !alt && !ctrl && shift) || (key > 95 && key < 106) || (key==8) || (key==9))
	{
		resultat=true;
	}
	return resultat;
	*/
	//Caractères autorisés : 0123456789
	reg= /^[0-9]*$/;
	//Récupération du résultat du test sur le champ
	chaine=oHTML.value;
	resultat=reg.test(chaine);
	span=document.getElementById("messageErreurNumLicencie")
	if(!resultat && chaine !="")
	//Si le champ ne respecte pas la règle (présences de caractères autres que 0123456789) et que le champ n'est pas vide
	{
		span.setAttribute("class","messageErreur");
		span.innerHTML="Caractères numériques autorisés seulement";
	}
	else
	{
		span.setAttribute("class","");
		span.innerHTML="";
	}
	return resultat;
}

/* FONCTION : verifExistenceNumLicencie(),
 * PARAMETRE (1) : "oHTML", objet html responsable de l'appel de la fonction ,
 * ROLE : Vérifie si un numéro de Licencie existe dans la base de données,
 * RETURN : Renvoit TRUE si existence, FALSE sinon
 */
function verifExistenceNumLicencie(oHTML)
{
	//Si on est dans le cas d'un représentant (donc plusieurs numéros de licenciés), on supprime les lignes vides (donc en trop)
	if(document.getElementById("divListeLicencie"))
	{
		div=document.getElementById("divListeLicencie").firstChild;
		//Pour chaque ligne
		i=0;
		while(i<div.childNodes.length) 
		{
			//---alert("nb lignes"+div.childNodes.length);
			//---alert("boucle"+i);
			ligne=div.childNodes[i];
			//---alert("ligne "+ligne);
			j=0;
			pasVide=true;
			//Tant qu'aucun champ n'est vide ET qu'il reste des champs à contrôler
			while(pasVide && j<ligne.childNodes.length)
			{
				//Si le champ d'indice j est vide
				if(ligne.childNodes[j].value=="")
					pasVide=false;
				else
					j++;
				//---alert("Pas vide "+pasVide);
			}
			//Si un champ est vide, on supprimer la ligne
			if(pasVide==false)
				supprimerLigneNumLicencie(ligne);
			//Sinon, on regarde le champ suivant
			else
				i++;
		};
	}
	//Envoi des requêtes
	resultat=requeteAjax(oHTML);
	//---alert(resultat);
	statutLicencie=document.getElementById("inputLicencie").checked;
	input=document.getElementById("inputTerminerInscription");
	if(input)
		input.parentNode.removeChild(input);
	if(statutLicencie)
	
	//Si demandeur est licencié
	{
		div=document.getElementById("divInformationsComplementaires");
		span=document.getElementById("messageErreurNumLicencie");
		if(resultat!=false)
		//Si la requête renvoie des résultats (informations de la personne)
		{
			div.innerHTML=resultat;
			span.innerHTML="";
			span.setAttribute("class","");
			
			//On bloque l'accès au numéro de licence
			div=document.getElementById("divInformationsLicencie");
			for (var i=0; i < div.childNodes.length; i++) {
			  div.childNodes[i].readOnly=true;
			};
			
			//On crée le bouton modifier qui remplace le bouton valider
			input=document.createElement("input");
			input.setAttribute("id","inputModifierNumLicencie");
			input.setAttribute("name","inputModifierNumLicencie");
			input.setAttribute("type","button");
			input.setAttribute("value","Modifier");
			input.setAttribute("onclick","modifierNumLicencie(this);");
			inputOld=document.getElementById("inputValiderInscription");
			div.replaceChild(input,inputOld);
			
			//On crée le bouton de fin d'inscription
			form=document.getElementById("formInscription");
			input=document.createElement("input");
			input.setAttribute("id","inputTerminerInscription");
			input.setAttribute("name","inputTerminerInscription");
			input.setAttribute("type","submit");
			input.setAttribute("value","Terminer l'inscription");
			input.setAttribute("onclick","verifFormInscription(this)");
			form.appendChild(input);	
		}
		else
		//Si pas de résultat
		{
			div.innerHTML="";
			span.innerHTML="Numéro de Licencie incorrect ou inconnu";
			span.setAttribute("class","messageErreur");
		}
	}
	else
	//Si le demandeur est représentant de licencié(s)
	{
		//On récupère les lignes valides
		lignesValides=resultat;
		lengthChaine=lignesValides.length;
		//Si il y a au moins 1 ligne valide
		if(lengthChaine>0)
		{
			//On supprime le bouton valider
			input=document.getElementById("inputValiderInscription");
			input.parentNode.removeChild(input);
			//On crée le bouton de fin d'inscription
			form=document.getElementById("formInscription");
			input=document.createElement("input");
			input.setAttribute("id","inputTerminerInscription");
			input.setAttribute("name","inputTerminerInscription");
			input.setAttribute("type","submit");
			input.setAttribute("value","Terminer l'inscription");
			input.setAttribute("onclick","verifFormInscription(this)");
			form.appendChild(input);
		}
		
		tabLignesValides=new Array();
		//---alert("longueur chaine : "+lengthChaine);
		
		//On extrait chaque caractère de la chaine un par un , et on les met dans un tableau
		for (var i=0; i < lengthChaine; i++) {
		  	tabLignesValides[i]=lignesValides.substr(0,1);
			lignesValides=lignesValides.substr(1);
		};
		div=document.getElementById("divListeLicencie").firstChild;
		//Pour chaque ligne saisie
		for (var i=0; i < div.childNodes.length; i++) {
			ligne=div.childNodes[i];
			//---alert("ligne :"+ligne);
			//On récupère le numéro de la ligne (dernier caractère de l'id)
			valeurLigne=ligne.id.substr((ligne.id.length-1),1);
			//---alert("valeur ligne :"+valeurLigne);
			j=0;
			//---alert("longueur tab valide :"+tabLignesValides.length);
			//---alert("valeur tab valide :"+tabLignesValides[j]);
			//Tant que le tableau des lignes valides contient des éléments ET qu'on a pas trouvé le numéro de ligne correspondant
			while(j<tabLignesValides.length && valeurLigne!=tabLignesValides[j])
			{
				j++;
			}
			//---alert("img");
			img=document.createElement("img");
			img.setAttribute("width","16px");
			img.setAttribute("height","16px");
			//Si on a trouvé le numéro de ligne, on insère l'image check
			if(valeurLigne==tabLignesValides[j])
			{
				img.setAttribute("src","img/check.jpg");
				for (var k=0; k < ligne.childNodes.length; k++) {
				//On verrouille les champs pour éviter les erreurs
					ligne.childNodes[k].readOnly=true;
				};
				//---alert("youhou");
				//On remplace le simple bouton reset de saisie par un bouton de suppression de la ligne
				inputOld=ligne.firstChild;
				//---alert("input Old:"+inputOld);
				inputNew=document.createElement("input");
				inputNew.setAttribute("id","inputSupprimerLigneNumLicencie");
				inputNew.setAttribute("name","inputSupprimerLigneNumLicencie");
				inputNew.setAttribute("type","button");
				inputNew.setAttribute("value","s");
				inputNew.setAttribute("onclick","supprimerLigneNumLicencie(this.parentNode);");
				ligne.replaceChild(inputNew,inputOld);
			}
			//Sinon, on met une croix rouge
			else
			{
				img.setAttribute("src","img/redcross.jpg");
			}
			//---alert(img.nodeName);
			if(ligne.lastChild.nodeName==img.nodeName)
				ligne.replaceChild(img,ligne.lastChild);
			else
				ligne.appendChild(img);
		};
	}
	return resultat;
}

/* FONCTION : verifIdentite()
 * PARAMETRE (1) : "oHTML", objet html responsable de l'appel de la fonction, ici un champ de texte ou un bouton
 * ROLE : Vérifie si la saisie du nom et du prénom est correcte
 * RETURN : Renvoit TRUE si identite correcte, FALSE sinon
 */
function verifIdentite(oHTML)
{
	champ=oHTML.value;
	span=document.getElementById("messageErreurIdentite");
	span.setAttribute("class","");
	span.innerHTML="";
	//Caractères autorisés
	var reg = /^([A-Za-z])*$/;
	resultat=reg.test(champ);
	if(!resultat)
	{
		span.innerHTML="Nom ou prénom invalide (caractères alphabétiques autorisés)";
		span.setAttribute("class","messageErreur");
	}
	return resultat;
}

/* FONCTION : verifCodePostal()
 * PARAMETRE (1) : "oHTML", objet html responsable de l'appel de la fonction, ici un champ de texte ou un bouton
 * ROLE : Vérifie si la saisie du code postal est correcte,
 * RETURN : Renvoit TRUE si code postal correct, FALSE sinon
 */
function verifCodePostal(oHTML)
{
	codePostal=oHTML.value;
	span=document.getElementById("messageErreurCodePostal");
	span.innerHTML="";
	span.setAttribute("class","");
	//Caractères autorisés
	var reg = /^([0-9]{5})$/;
	resultat=reg.test(codePostal);
	if(!resultat)
	{
		span.innerHTML="Code postal invalide (Caractères numériques autorisés, format : '99999')";
		span.setAttribute("class","messageErreur");
	}
	return resultat;
}

/* FONCTION : verifMail()
 * PARAMETRE (1) : "oHTML", objet html responsable de l'appel de la fonction, ici un champ de texte ou un bouton
 * ROLE : Vérifie si la saisie du mail est correcte, puis vérifie si l'adresse mail n'est pas déjà utilisée
 * RETURN : Renvoit TRUE si adresse mail correcte et disponible, FALSE sinon
 */
function verifMail(oHTML)
{
	aEmail=oHTML.value;
	span=document.getElementById("messageErreurMail");
	span.innerHTML="";
	span.setAttribute("class","");
	//Caractères autorisés lors de la saisie de l'adresse email
	var reg = /^([A-Za-z0-9_\+\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;
	resultat=reg.test(aEmail);
	if(resultat)
	//Si la saisie du mail est correcte, on vérifie si l'adresse existe ou non dans la base de données
	{
		resultat=requeteAjax(oHTML);
		if(!resultat)
		//Si l'adresse mail existe déja
		{
			span.innerHTML="Adresse mail déja utilisée";
			span.setAttribute("class","messageErreur");
		}	
	}
	else
	//Si la saisie du mail est incorrecte
	{
		span.innerHTML="Adresse mail invalide";
		span.setAttribute("class","messageErreur");
	}
	return resultat;
}

/* FONCTION : verifSaisiePassword(oHTML)
 * PARAMETRE (1) : "oHTML, objet html responsable de l'appel de la fonction, ici un champ de texte
 * ROLE : vérifie que les deux champs de mot de passe soient identiques et constitués de 4 caractères minimum
 * RETURN : True si saisie ok, false sinon
 */
function verifSaisiePassword(oHTML)
{
	resultat=true;
	span=document.getElementById("messageErreurPassword");
	span.innerHTML="";
	span.setAttribute("class","");
	idOHTML=oHTML.id;
	mdp=oHTML.value;
	if(mdp.length<4)
	{
		resultat=false;
		span.innerHTML="Mot de passe trop court (4 caractères minimum)";
		span.setAttribute("class","messageErreur");
	}
	else
	{
		if(idOHTML=="inputPassword")
			mdp2=document.getElementById("inputConfirmePassword").value;
		else
		// idOHTML="inputConfirmePassword"
			mdp2=document.getElementById("inputPassword").value;
		if(mdp != mdp2 && mdp2 != "")
		{
			span.innerHTML="Les mots de passe ne sont pas identiques";
			span.setAttribute("class","messageErreur");
			resultat=false;
		}
	}
	return resultat;
}

/* FONCTION : verifFormInscription()
 * PARAMETRE () : 
 * ROLE : Vérifie si la totalité du formulaire est correctement saisie, puis lance l'inscription
 * RETURN :  Ø
 */
function verifFormInscription(oHTML)
{	
	resultat=true;	
	mail=document.getElementById("inputMail");
	mdp=document.getElementById("inputPassword");
	mdp2=document.getElementById("inputConfirmePassword");
	
	span=document.getElementById("messageErreurMail");
	if(span.innerHTML!="" || mail.value=="")
		resultat=false;
	else
	{
		span=document.getElementById("messageErreurPassword");
		if(span.innerHTML!="")
			resultat=false;
		else
		{
			span=document.getElementById("messageErreurNumLicencie");
			if(span.innerHTML!="")
				resultat=false;
			else
			{
				span=document.getElementById("messageErreurIdentite");
				if(span && span.innerHTML!="")
					resultat=false;
				else
				{
					span=document.getElementById("messageErreurCodePostal");
					if(span && span.innerHTML!="")
						resultat=false;
				}
			}
		}
	}
	span=document.getElementById("messageErreurFormulaire");
	if(resultat)
	{
		span.innerHTML="";
		span.setAttribute("class","");
		resultat=requeteAjax(oHTML);
		//---alert(resultat);
		if(resultat==true)
			location.reload();
		else
		{
			alert("Erreur pendant l'inscription");
		}
	}
	else
	{
		span.innerHTML="Présences d'erreurs dans le formulaire. Veuillez vérifier votre saisie.";	
		span.setAttribute("class","messageErreur");
	}
}

function verifInformationsRepresentant()
{
	
}
